import * as fs from 'node:fs'

import { JsonLoader } from '@cherrystudio/embedjs'

/**
 * Drafts 应用导出的笔记文件加载器
 * 原始文件是一个 JSON 数组。每条笔记只保留 content、tags、modified_at 三个字段
 */
export class DraftsExportLoader extends JsonLoader {
  /**
   * 构造函数
   * @param filePath Drafts 导出的 JSON 文件路径
   */
  constructor(filePath: string) {
    // 读取文件内容
    const fileContent = fs.readFileSync(filePath, 'utf-8')
    // 解析为 JSON 数组
    const rawJson = JSON.parse(fileContent) as any[]
    // 只保留需要的字段，并将换行符替换为 <br>
    const json = rawJson.map((item) => {
      return {
        content: item.content?.replace(/\n/g, '<br>'), // 内容，换行转为 <br>
        tags: item.tags, // 标签
        modified_at: item.created_at // 修改时间（取 created_at 字段）
      }
    })
    // 调用父类构造函数，传递处理后的对象
    super({ object: json })
  }
}
